import java.util.*;

public class demo {

    // 数据库连接池△
//Web系统通常会频繁地访问数据库，如果每次访问都创建新连接，性能会很差。为了提高性能，架构师决定复用已经创建的连接。当收到请求，
//并且连接池中没有剩余可用的连接时，系统会创建一个新连接，当请求处理完成时该连接会被放入连接池中，供后续请求使用。
//现在提供你处理请求的日志，请你分析一下连接池最多需要创建多少个连接。
//    输入描述:
//输入包含多组数据，每组数据第一行包含一个正整数n（1≤n≤1000），表示请求的数量。
//紧接着n行，每行包含一个请求编号id（A、B、C……、Z）和操作（connect或disconnect）。
//    输出描述:
//对应每一组数据，输出连接池最多需要创建多少个连接

//    输入
//6
//A connect
//A disconnect
//B connect
//C connect
//B disconnect
//C disconnect
//    输出
//2

    //    通过hashSet保存id来解决
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            int max = 0;
            Set<String> set = new HashSet<>();
            for (int i=0; i<n; i++) {
                String id = scanner.next();
                String operate = scanner.next();
                if (operate.equals("connect")) {
                    set.add(id);
                }else {
                    set.remove(id);
                }
                max = Math.max(max, set.size());
            }
            System.out.println(max);
        }
    }



    // mkdir
//工作中，每当要部署一台新机器的时候，就意味着有一堆目录需要创建。
//例如要创建目录“/usr/local/bin”，就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在，Linux下mkdir提供了强大的“-p”选项，
//只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。现在给你一些需要创建的文件夹目录，请你帮忙生成相应的“mkdir -p”命令。
//    输入
//      3
//      /a
//      /a/b
//      /a/b/c
//      3
//      /usr/local/bin
//      /usr/bin
//      /usr/local/share/bin

//          输出
//      mkdir -p /a/b/c
//
//      mkdir -p /usr/bin
//      mkdir -p /usr/local/bin
//      mkdir -p /usr/local/share/bin


//    要注意这种情况
//      3
//      /a
//      /ab
//      /a/b/c

    public static void main2(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            //  保存每个路径 path
            String[] path = new String[n];
            for (int i=0; i<n; i++) {
                path[i] = scanner.next();
            }
            // 数组通过Arrays.sort()方法 通过字典来排序
            Arrays.sort(path);

            // 设置一个标记数组 如果出现相同或者包含就不必打印
            boolean[] flag = new boolean[n];
            // 遍历数组 如果出现 后面的包含前面的 就打印后面的 当要注意特殊情况
            // 这里遍历到n-1 不然数组越界了
            for (int i=0; i<n-1; i++) {
                if (path[i].equals(path[i+1]) || (path[i+1].contains(path[i]) &&
                        path[i+1].charAt(path[i].length())=='/')) {//length()后面不需要再+1  因为数组下标0开始
                    flag[i] = true;
                }
            }
            // 遍历标记数组flag
            for (int i=0; i<n; i++) {
                if (!flag[i]) {
                    System.out.println("mkdir -p " + path[i]);
                }
            }
            // 因为格式 这里要多个换行
            System.out.println();
        }
    }
}
